package com.sqsf.test;

import com.alibaba.druid.pool.DruidDataSource;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;

@Configuration
@PropertySource("classpath:jdbc.properties")//读取指定配置文件进行使用
//等价于spring中配置的<context:property-placeholder location="classpath:jdbc.properties"/>
public class DataSourceConfig {
    //与配置文件中直接使用不同的是 注解配置类需要通过属性进行获取
    @Value("${jdbc.driver}")
    private String driver;
    @Value("${jdbc.url}")
    private String url;
    @Value("${jdbc.username}")
    private String username;
    @Value("${jdbc.password}")
    private String password;

    //对于数据源这类工具类 无法通过注解的形式存入spring中
    //书写对应的工厂方法 返回对象交由spring容器管理
//        <bean id="druid" class="com.alibaba.druid.pool.DruidDataSource">
//        <property name="driverClassName" value="${jdbc.driver}"/>
//        <property name="url" value="${jdbc.url}"/>
//        <property name="username" value="${jdbc.username}"/>
//        <property name="password" value="${jdbc.password}"/>
//    </bean>
    @Bean("druid")
    public DruidDataSource druid(){
        DruidDataSource druid=new DruidDataSource();
        druid.setDriverClassName(driver);
        druid.setUrl(url);
        druid.setUsername(username);
        druid.setPassword(password);
        return druid;
    }

}